

/**这是开发模式使用的main.js文件****/ 

import Vue from 'vue'
import App from './App.vue'
import router from './router'

//导入element方式1,官网的
// import ElementUI  from "element-ui";
// import 'element-ui/lib/theme-chalk/index.css';
// Vue.use(ElementUI); //这是全部引入


//导入element方式1，黑马的,自建单独的文件按需导入
import "./plugins/element.js" // 黑马讲的这种


//导入全局样式表(自建的)
import  "./assets/css/global.css"


//导入字体图标
import "./assets/fonts/iconfont.css"



//项目优化:使用进度条,导入nprogress包对应的js和css
//如果触发了ajax的request请求,证明了发起了网络请求,在这里显示进度条
//如果触发了ajaxdresponse请求,证明收到了请求结果,隐藏进度条
//1.安装   2. 导入nprogress
import NProgress from "nprogress";
import  "nprogress/nprogress.css"; 


//导入axios
import axios from "axios";
//配置请求的根路径:把所有访问路径替换成了下面这个
axios.defaults.baseURL ="http://127.0.0.1:8888/api/private/v1/";

//通过axios拦截器（每次发起ajax请求都会执行这个）
//项目优化:3. 在request拦截器中,显示进度条
axios.interceptors.request.use(config =>{

  //3.显示进度条
  NProgress.start();

  // console.log(config);//浏览器拦截对象
  //做得权限处理,访问页面的时候把token传到后台（切换页面的时候在Network里面查看）
  config.headers.Authorization = window.sessionStorage.getItem("token");

  return config;

})
//3.项目优化：在response拦截器中,隐藏进度条
axios.interceptors.response.use(function(config) {
  //3.隐藏进度条
  NProgress.done();

  return config;
})

//这样写每一个vue组件都能通过$http发起axios请求
Vue.prototype.$http = axios;//prototype:挂在原型链元素



//导入第三方表格插件
import TreeTable from 'vue-table-with-tree-grid'
//tree-table ：表格的名称,用法:<tree-table><tree-table/>
Vue.component("tree-table", TreeTable);



//定义全局过滤器(和goods的表格创建时间行对着看)
Vue.filter("dateFormat",function(originVal){

  // console.log(originVal);//表格里面的毫秒数,通过|管道指定

  //字符串补全长度的功能：如果某个字符串不够指定长度，会在头部或
  // 尾部补全。padStart()用于头部补全，padEnd()用于尾部补全。
  // 例：'x'.padStart(5, 'ab') // 'ababx'
  //      'xxx'.padStart(2, 'ab') // 'xxx'

  //星期月 日 年 时 分 秒，输出时间对象
  const dt = new Date(originVal);

  //获取年
  const y = dt.getFullYear();
  //获取月
  const m = (dt.getMonth()+1+"").padStart(2,'0');//头部补全,不足两位,用0在头部补全
  //获取日，几号
  const d = (dt.getDate()+"").padStart(2,'0');
  //获取几点
  const hh = (dt.getHours()+"").padStart(2,'0');
  //获取几分
  const mm = (dt.getMinutes()+"").padStart(2,'0');
  //获取几秒 
  const ss = (dt.getSeconds()+"").padStart(2,'0');

  return `${y}-${m}-${d}-${hh}:${mm}:${ss}` ;

})



//导入副文本编辑器
import VueQuillEditor from 'vue-quill-editor'

///导入副文本编辑器对应的样式
import 'quill/dist/quill.core.css' // import styles
import 'quill/dist/quill.snow.css' // for snow theme
import 'quill/dist/quill.bubble.css' // for bubble theme
//将富文本编辑器，注册为全局可用的组件
Vue.use(VueQuillEditor, /* { default global options } */)


Vue.config.productionTip = false;





new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
